<!DOCTYPE html>
<html>

<head lang="en">
    <meta charset="UTF-8">
    <title>注册</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport"
          content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <meta name="format-detection" content="telephone=no">
    <meta name="renderer" content="webkit">
    <meta http-equiv="Cache-Control" content="no-siteapp"/>

    <link rel="stylesheet" href="./AmazeUI-2.4.2/assets/css/amazeui.min.css"/>
    <link href="./css/dlstyle.css" rel="stylesheet" type="text/css">
    <script src="./AmazeUI-2.4.2/assets/js/jquery.min.js"></script>
    <script src="./AmazeUI-2.4.2/assets/js/amazeui.min.js"></script>
    <script src="js/plugins/vue/dist/vue.js"></script>
    <script src="js/plugins/axios/dist/axios.js"></script>
    <script src="js/common.js"></script>

</head>

<body>

<div class="login-boxtitle">
    <a href="home/demo.html"><img alt="" src="./images/logobig.png"/></a>
</div>

<div class="res-banner">
    <div class="res-main">
        <div class="login-banner-bg"><span></span><img src="./images/big.jpg"/></div>
        <div class="login-box">

            <div class="am-tabs" id="doc-my-tabs">
                <ul class="am-tabs-nav am-nav am-nav-tabs am-nav-justify">
                    <li class="am-active"><a href="">邮箱注册</a></li>
                    <li><a href="">手机号注册</a></li>
                </ul>

                <div class="am-tabs-bd" id="register">
                    <!--邮箱注册-->
                    <div class="am-tab-panel am-active">
                        <form method="post">

                            <div class="user-email">
                                <label for="email"><i class="am-icon-envelope-o"></i></label>
                                <input type="email" v-model="emailRegisterForm.email" name="" id="email"
                                       placeholder="请输入邮箱账号">
                            </div>
                            <div class="user-phone">
                                <label for="imageCode1"><i class="am-icon-check am-icon-sm"></i></label>
                                <input type="text" v-model="emailRegisterForm.imageCodeValue" name=""
                                       style="width: 180px;" id="imageCode1" placeholder="请输入图片验证码">
                                <img id="captcha-image-temp1" @click="getImageCode" :src="imageCode"
                                     class="captcha-image-temp" alt="点击换图" title="点击换图"
                                     style="vertical-align: middle; cursor: pointer;">
                            </div>
                            <div class="verification">
                                <label for="code1"><i class="am-icon-code-fork"></i></label>
                                <input type="tel" v-model="emailRegisterForm.emailCode" name="" id="code1"
                                       placeholder="请输入验证码" style="width: 150px">
                                <!--<a class="btn" href="javascript:void(0);" onclick="sendMobileCode();"
                                   id="sendMobileCode">
                                    <span id="dyMobileButton">获取</span></a>-->
                                <button type="button" class="btn" @click="sendEmailCode">发送邮件</button>
                            </div>
                            <div class="user-pass">
                                <label for="password1"><i class="am-icon-lock"></i></label>
                                <input type="password" v-model="emailRegisterForm.password" name="" id="password1"
                                       placeholder="设置密码">
                            </div>
                            <div class="user-pass">
                                <label for="passwordRepeat1"><i class="am-icon-lock"></i></label>
                                <input type="password" v-model="emailRegisterForm.passwordRepeat" name=""
                                       id="passwordRepeat1" placeholder="确认密码">
                            </div>
                        </form>

                        <div class="login-links">
                            <label for="reader-me">
                                <input id="reader-me" type="checkbox"> 点击表示您同意商城《服务协议》
                            </label>
                        </div>
                        <div class="am-cf">
                            <input type="submit" @click="emailRegister" name="" value="注册"
                                   class="am-btn am-btn-primary am-btn-sm am-fl">
                        </div>

                    </div>
                    <!--手机号注册-->
                    <div class="am-tab-panel">
                        <form method="post">
                            <div class="user-phone">
                                <label for="phone"><i class="am-icon-mobile-phone am-icon-md"></i></label>
                                <input type="tel" v-model="phoneRegisterForm.phone" name="" id="phone"
                                       placeholder="请输入手机号">
                            </div>
                            <div class="user-phone">
                                <label for="imageCode2"><i class="am-icon-check am-icon-sm"></i></label>
                                <input type="text" v-model="phoneRegisterForm.imageCodeValue" name=""
                                       style="width: 180px;" id="imageCode2" placeholder="请输入图片验证码">
                                <img id="captcha-image-temp2" @click="getImageCode" :src="imageCode"
                                     class="captcha-image-temp" alt="点击换图" title="点击换图"
                                     style="vertical-align: middle; cursor: pointer;">
                            </div>
                            <div class="verification">
                                <label for="code2"><i class="am-icon-code-fork"></i></label>
                                <input type="tel" v-model="phoneRegisterForm.smsCode" name="" id="code2"
                                       placeholder="请输入验证码" style="width: 150px">
                                <!--<a class="btn" href="javascript:void(0);" onclick="sendMobileCode();"
                                   id="sendMobileCode">
                                    <span id="dyMobileButton">获取</span></a>-->
                                <button type="button" class="btn" @click="sendMobileCode">获取</button>
                            </div>
                            <div class="user-pass">
                                <label for="password2"><i class="am-icon-lock"></i></label>
                                <input type="password" v-model="phoneRegisterForm.password" name="" id="password2"
                                       placeholder="设置密码">
                            </div>
                            <div class="user-pass">
                                <label for="passwordRepeat2"><i class="am-icon-lock"></i></label>
                                <input type="password" v-model="phoneRegisterForm.passwordRepeat" name=""
                                       id="passwordRepeat2" placeholder="确认密码">
                            </div>
                        </form>
                        <div class="login-links">
                            <label for="reader-me">
                                <input id="reader-me" type="checkbox"> 点击表示您同意商城《服务协议》
                            </label>
                        </div>
                        <div class="am-cf">
                            <input type="submit" @click="phoneRegister" name="" value="注册"
                                   class="am-btn am-btn-primary am-btn-sm am-fl">
                        </div>

                        <hr>
                    </div>

                    <script>
                        $(function () {
                            $('#doc-my-tabs').tabs();
                        })
                    </script>

                </div>
            </div>
        </div>
    </div>

    <div class="footer ">
        <div class="footer-hd ">
            <p>
                <a href="# ">恒望科技</a>
                <b>|</b>
                <a href="# ">商城首页</a>
                <b>|</b>
                <a href="# ">支付宝</a>
                <b>|</b>
                <a href="# ">物流</a>
            </p>
        </div>
        <div class="footer-bd ">
            <p>
                <a href="# ">关于恒望</a>
                <a href="# ">合作伙伴</a>
                <a href="# ">联系我们</a>
                <a href="# ">网站地图</a>
                <em>© 2015-2025 Hengwang.com 版权所有. 更多模板 <a href="http://www.cssmoban.com/" target="_blank" title="模板之家">模板之家</a>
                    - Collect from <a href="http://www.cssmoban.com/" title="网页模板" target="_blank">网页模板</a></em>
            </p>
        </div>
    </div>
    <script type="text/javascript">
        new Vue({
            el: "#register",
            data: {
                // 表单
                phoneRegisterForm: {
                    // 手机号
                    phone: '',
                    // 图形验证码
                    imageCodeValue: '',
                    // uuid
                    imageCodeKey: '',
                    // 短信验证码
                    smsCode: '',
                    // 密码
                    password: '',
                    // 确认密码
                    passwordRepeat: '',
                    // 类型
                    type: 'register'
                },
                emailRegisterForm: {
                    // 邮箱
                    email: '',
                    // 图形验证码
                    imageCodeValue: '',
                    // uuid
                    imageCodeKey: '',
                    // 短信验证码
                    emailCode: '',
                    // 密码
                    password: '',
                    // 确认密码
                    passwordRepeat: ''
                },
                // 最终的图形验证码base64
                imageCode: "",
                // 前缀
                imageCodePrefix: "data:image/jpeg;base64,"
            },
            methods: {
                phoneRegister() {
                    this.$http.post("/register/phone", this.phoneRegisterForm)
                        .then(result => {
                            result = result.data;
                            if (result.success) {
                                // 跳转到主页
                                location.href = "index.html"
                            } else {
                            }
                            alert(result.msg)
                        })
                },
                emailRegister() {
                    this.$http.post("/register/email", this.emailRegisterForm)
                        .then(result => {
                            result = result.data;
                            if (result.success) {
                                // 跳转到主页
                                location.href = "index.html"
                            } else {
                            }
                            alert(result.msg)
                        })
                },
                sendEmailCode(event) {
                    // 判断邮箱不为空
                    if (!this.emailRegisterForm.email) {
                        alert("邮箱不可为空！")
                        return;
                    }
                    // 判断图形验证码不为空
                    if (!this.emailRegisterForm.imageCodeValue) {
                        alert("图形验证码不可为空！")
                        return;
                    }
                    // 获取按钮，禁用按钮
                    var sendBtn = $(event.target);
                    sendBtn.attr("disabled", true);
                    // 给图形验证码RedisKey赋值
                    this.emailRegisterForm.imageCodeKey = localStorage.getItem("registerImageCodeKey");
                    // 发送ajax请求
                    this.$http.post("/verifyCode/emailCode", this.emailRegisterForm).then(res => {
                        var ajaxResult = res.data;
                        if (ajaxResult.success) {
                            alert("邮件验证码已经发送到您的邮箱，请在15分钟内使用");
                            //5.1.发送成：倒计时
                            var time = 180;
                            var interval = window.setInterval(function () {
                                //每一条倒计时减一
                                time = time - 1;
                                //把倒计时时间搞到按钮上
                                sendBtn.html(time + "秒后重发");
                                //5.2.倒计时完成恢复按钮
                                if (time <= 0) {
                                    sendBtn.html("重新发送");
                                    sendBtn.attr("disabled", false);
                                    //清除定时器
                                    window.clearInterval(interval);
                                }
                            }, 1000);
                        } else {
                            //5.3.发送失败：提示，恢复按钮
                            sendBtn.attr("disabled", false);
                            alert("发送失败:" + ajaxResult.msg);
                        }
                    })
                },
                sendMobileCode(event) {
                    // 判断手机号不为空
                    if (!this.phoneRegisterForm.phone) {
                        alert("手机号不可为空！")
                        return;
                    }
                    // 判断图形验证码不为空
                    if (!this.phoneRegisterForm.imageCodeValue) {
                        alert("图形验证码不可为空！")
                        return;
                    }
                    // 获取按钮，禁用按钮
                    var sendBtn = $(event.target);
                    sendBtn.attr("disabled", true);
                    // 4.给图形验证码RedisKey赋值
                    this.phoneRegisterForm.imageCodeKey = localStorage.getItem("registerImageCodeKey");
                    //5.发送ajax请求
                    this.$http.post("/verifyCode/smsCode", this.phoneRegisterForm).then(res => {
                        var ajaxResult = res.data;
                        if (ajaxResult.success) {
                            alert("手机验证码已经发送到您的手机，请在3分钟内使用");
                            //5.1.发送成：倒计时
                            var time = 60;
                            var interval = window.setInterval(function () {
                                //每一条倒计时减一
                                time = time - 1;
                                //把倒计时时间搞到按钮上
                                sendBtn.html(time + "秒后重发");
                                //5.2.倒计时完成恢复按钮
                                if (time <= 0) {
                                    sendBtn.html("重新发送");
                                    sendBtn.attr("disabled", false);
                                    //清除定时器
                                    window.clearInterval(interval);
                                }
                            }, 1000);
                        } else {
                            //5.3.发送失败：提示，恢复按钮
                            sendBtn.attr("disabled", false);
                            alert("发送失败:" + ajaxResult.msg);
                        }
                    })
                },
                // 生成UUID的方法
                createUuid() {
                    var s = [];
                    var hexDigits = "0123456789abcdefghi";
                    for (var i = 0; i < 36; i++) {
                        s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
                    }
                    s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
                    s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
                    s[8] = s[13] = s[18] = s[23] = "-";

                    var uuid = s.join("");
                    return uuid;
                },

                // 获取图形验证码
                getImageCode() {
                    // 2.1.从localStorage中获取UUID
                    let imageCodeKey = localStorage.getItem("registerImageCodeKey");
                    // 2.2.判断当前浏览器本地是否有key值，没有则生成，有则直接使用
                    if (!imageCodeKey || imageCodeKey === '') {
                        imageCodeKey = this.createUuid();
                        localStorage.setItem("registerImageCodeKey", imageCodeKey);
                    }
                    // 2.3.发送Axios请求，传递UUID，得到图形验证码的Base64字符串
                    this.$http.get("/verifyCode/image/" + imageCodeKey).then(res => {
                        // 2.3.1.将接口返回的图形验证码Base64字符串码+前缀赋值给模型中的imageCode字段
                        this.imageCode = this.imageCodePrefix + res.data.resultObj;
                    })
                }

            },
            mounted() {
                this.getImageCode()
            }
        })
    </script>
</body>

</html>